package app;

import java.io.IOException;
import java.net.DatagramSocket;
import java.nio.ByteBuffer;

import lspCliente.LspClient;
import lspUtils.LspParams;
import lspUtils.Pack;

/**
 * Cliente de echo simples . Envia uma mensagem ao servidor , e obt�m com
 * resposta do mesmo a mesma mensagem que foi enviada .
 * 
 */
public class ClientEcho {
	
	 

	public static void main(String[] args) throws IOException {

		// Cliente se conecta com um servidor
		LspClient client = new LspClient(5000, new LspParams(1000, 5));
		ByteBuffer buf = ByteBuffer.allocate(1000);

		enviarPedidoConexao(buf);
		//enviarMsg(buf);
		byte[] btbuf = buf.array();
		// System.out.println(buf);
		// Envia mensagem
		client.write(btbuf);

		// Recebe resposta do servidor de echo
		Pack pacote = client.receberPacote();
		
		
		byte[] payload = pacote.getPayload();
		// Converte a resposta de bytes para string
		String recebido = new String(payload);

		// Exibe resposta
		System.out.println(recebido);
		enviarMsg(buf);
		byte[] btbuf1 = buf.array();
		client.write(btbuf1);
		Pack pacote1 = client.receberPacote();
		byte[] payload1 = pacote1.getPayload();
		// Converte a resposta de bytes para string
		String recebido1 = new String(payload1);

		// Exibe resposta
		System.out.println(recebido1);

		// client.close();
	}

	public static void enviarMsg(ByteBuffer buf ) {
		// Define mensagem a enviar
		short tpMensagem = 1;
		short conId = 1;
		short seqNun = 3;
		String mensagem = "joasijdoasidaosduaoisduoasdlaskjdoaisjdoasdjoasidjoasijdoasidjoasijdoai323!!";
		
		buf.put(mensagem.getBytes());
		buf.putShort(994, tpMensagem);
		buf.putShort(996, conId);
		buf.putShort(998, seqNun);
		
	}
	
	public static void enviarPedidoConexao(ByteBuffer buf ) {
		// Define mensagem a enviar
		short tpMensagem = 0;
		short conId = 0;
		short seqNun = 0;
		buf.putShort(994, tpMensagem);
		buf.putShort(996, conId);
		buf.putShort(998, seqNun);
		
	}

}
